MiniSport Laptop Hacker - Vol 13, 29 Apr 1993 
Copyright(C) 1993 by Brian Mork. 
 
>>> ADMIN 
No, I'm not superstitious, but the number of this MLH edition did pass my 
mind.  The last two weeks, my ZL-2 has been out of commission.  Almost si- 
multaneously, I received a letter from n7ftm (Bill) that his is having the 
same trouble.  I've spent the last few nights tearing mine apart.  Bad for 
me; good for you!  I've got more specs on how the power supply works in 
the next edition of MLH. 
 
In addition, I've been digesting volumes of documentation on Internet and 
Waffle, a BBS program meant to host users and process Internet E-mail and 
Usenet topical forums.  I now have a node running on my own computer.  See 
the new (and let's hope stable) address below. 
 
Two people have sent me messages via USMail because something about the 
packet link wasn't getting messages through.  Each edition, I try to con- 
firm in the ADMIN section who all I've heard from.  If I don't mention 
your callsign here, I didn't get your message.  This round I've heard from 
N9ADS, N9LNQ, WA8WZX, W4NTG, W5SYT, N7FTM, KA9CAP. 
 
>>> COM I/O ARCHITECTURE 
Continuing from Volumes 7,8, and 10, there are only three more registers 
to cover. 
 
Line Control Register (LCR) at address (BASE+3) 
----------------------------------------------- 
This register allows you to configure the format of the serial data leav- 
ing the UART and (simultaneously) the format expected by the UART.  All 
bits of this register are read/write. 
 
Bit 0&1: These two bits select how many data bits are transferred in each 
       asynchronous character.  5,6,7, or 8 bits are selected with values 
       of 00,01,10, or 11 respectively.  For example, if you desire 7 data 
       bits, set Bit0 to 0 and Bit1 to 1. 
 
Bit 2: Set to 0 if you want one stop bit generated on outbound data and 
       checked on inbound data.  Setting to 1 chooses 1-1/2 stop bits with 
       5-bit data and two stop bits with 6,7, or 8-bit data. 
 
Bit 3: Set to 1 to generate a parity bit.  Set to 0 if you want no parity 
       bit at all.  If this is set to 0, the next bit has no effect. 
 
Bit 4: Even Parity Select.  When Bit3 is 1 and Bit4 is 0, an odd number of 
       1's is transmitted or checked in the data bits and parity bit. 
       When Bit3 is a 1 and Bit4 is a 1, an even number of bits is trans- 
       mitted or checked. 
 
Bit 5: When set to 1, the function of Bit4 is reversed. 
 
Bit 6: Set Break.  When this bit is set to 1, the serial output is forced 
       to the spacing state (same as data=0) and remains until changing 
       this bit to a 0. 
 
Bit 7: This is the Baud-Rate Divisor Latch Access Bit.  This bit is set to 
       0 for normal operation allowing access of the transmitter and re- 
       ceiver buffers at BASE+0, and the Interrupt Enable Register at 
       BASE+1.  When set to 1, these same addresses access the Baud Rate 
       Divisor. 
 
Line Status Register (LSR) at address (BASE+5) 
---------------------------------------------- 
This register provides information about recent data transfer.  All bits 
are not read/write. 
 
Bit 0: Data Ready. The UART sets this bit to 1 whenever a complete incom- 
       ing character is available in the receiver buffer.  It is reset to 
       0 by writing a zero or by reading the receiver buffer.  Bit1 
       through Bit4  are "errors" that produce a RLS interrupt (see IER 
       and IIR descriptions). 
 
Bit 1: Overrun. This bit is set to 1 whenever the receiver buffer was not 
       read by the CPU before the next character was transferred into the 
       receiver buffer (overwriting the lost character).  This bit is re- 
       set to 0 whenever the CPU reads the LSR. 
 
Bit 2: Parity Error. If this bit is 1, the received character did not have 
       the correct even or odd parity as selected by the bits in the LCR. 
       It resets to 0 whenever the CPU reads the LSR. 
 
Bit 3: Framing Error. This bit is set to 1 whenever the stop bit following 
       the last data bit (or parity, if selected) is detected in the spac- 
       ing level.  (A stop bit is suppose to be mark status.) 
 
Bit 4: Break Received.  This is set to 1 whenever the received data input 
       is held in spacing status longer than a full word's time: the total 
       of start bit, data bits, parity, and stop bits. 
 
Bit 5: Transmitter register empty.  This bit is 1 when the UART is ready 
       to accept a new character for transmission.  It actually switches 
       to 1 when the previous character is moved from the transmitter 
       holding register to the transmit shift register.  It becomes 0 con- 
       currently with the loading of the holding register by the CPU. 
 
Bit 6: Transmitter shift register empty.  This bit is 1 whenever the shift 
       register is idle (nothing being transmitted).  It becomes 0 when 
       the shift register gets a character from the transmitter holding 
       register. 
 
Bit 7: Permanently 0 
 
Baud Rate Divisor Latch at addresses (BASE, BASE+1) 
--------------------------------------------------- 
These two registers set the bits per second rate transmitted by the UART. 
This is a 16-bit divisor for the clock fed into pin 16 of the 8250 UART, 
giving a frequency *sixteen* times the desired baud rate.  Pin 16 is usu- 
ally fed with a frequency of 1.8432 MHz. 
 
The LSB (least significant byte) is written to (or read from) address 
BASE, and the MSB (most significant byte) is written/read from address 
BASE+1.  This is true only when the Divisor Access Bit in the LCR is set 
to 1. 
 
The following table can be used if a 1.8432 Mhz clock is used (table 
values are decimal): 
 
     300       1200      2400      4800      9600      19200 
MSB    1         0         0         0         0         0 
LSB  128        96        48        24        12         6 
 
 
Lastly, a request:  Please look in any data book you have and try to iden- 
tify the following three chips.  Two of each are surface mounted on the 
bottom side of the ZL power supply switching regulator board.  I need to 
find out how they're suppose to work to know if mine are working!  A pin- 
out and short description would be GREATLY appreciated! 
 
73, Brian Mork (Opus-OVH)          KA9SNF@wb7nnf.#spokn.wa.usa 
                                   Internet ka9snf@opus-ovh.spk.wa.us 
                                   6006-B Eaker, Fairchild, WA 99011 
